home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 2 / Amiga Tools 2.iso / tools / mg / src.lzh / amiga / ttyicon.c < prev    next >
C/C++ Source or Header  |  1990-05-23  |  4KB  |  147 lines

  1. /*
  2.  * Name:    MG 2a Iconify the MG window using Leo Schwab's iconify()
  3.  * routine. Last Edit:    07-Jan-88    mic@emx.utexas.edu Created:
  4.  * 04-Jan-88    mic@emx.utexas.edu
  5.  */
  6.  
  7. #include "do_iconify.h"
  8. #ifdef    DO_ICONIFY
  9.  
  10. #include <exec/types.h>
  11. #include <exec/memory.h>
  12. #include <intuition/intuition.h>
  13. #ifdef LATTICE
  14. #include <proto/all.h>
  15. #else
  16. #include <functions.h>
  17. #endif
  18.  
  19. #undef    TRUE
  20. #undef    FALSE
  21. #include "def.h"
  22. #include "iconify.h"
  23.  
  24. #ifdef    ANSI
  25. #include <string.h>
  26. #endif
  27.  
  28. /*
  29.  * Simple Mg 3a icon image.  We need a more imaginative one.
  30.  */
  31.  
  32.  
  33. UWORD  mg3a[216] = {
  34.     /* bitplane #0 */
  35.     0x0000, 0x0000, 0x0000, 0x0000,
  36.     0x0000, 0x0000, 0x0000, 0x0000,
  37.     0x0000, 0x0000, 0x0000, 0x0000,
  38.     0x3FFF, 0xFFFF, 0xFFFF, 0xF000,
  39.     0x3FFF, 0xFFFF, 0xFFFF, 0xF000,
  40.     0x387F, 0x1FFF, 0x0FFF, 0xF000,
  41.     0x3C3F, 0x3FFE, 0xE7FF, 0xF000,
  42.     0x3CBE, 0x3FFE, 0x73FF, 0xF000,
  43.     0x3CBE, 0x3EFF, 0xF7EF, 0xF000,
  44.     0x3C9C, 0x3C47, 0xE793, 0xF000,
  45.     0x3C9D, 0x3D9F, 0xCFBB, 0xF000,
  46.     0x3CC9, 0x39BF, 0xE7F3, 0xF000,
  47.     0x3CCB, 0x39BF, 0xF3CB, 0xF000,
  48.     0x3CCB, 0x3D3E, 0x73BB, 0xF000,
  49.     0x3CE3, 0x3C7E, 0xE73A, 0xF000,
  50.     0x3866, 0x1E1F, 0x0F80, 0xF000,
  51.     0x3FFF, 0xFCCF, 0xFFFF, 0xF000,
  52.     0x3FFF, 0xFDEF, 0xFFFF, 0xF000,
  53.     0x3FFF, 0xFDDF, 0xFFFF, 0xF000,
  54.     0x3FFF, 0xFC1F, 0xFFFF, 0xF000,
  55.     0x3FFF, 0xFFFF, 0xFFFF, 0xF000,
  56.     0x3FFF, 0xFFFF, 0xFFFF, 0xF000,
  57.     0x3FFF, 0xFFFF, 0xFFFF, 0xF000,
  58.     0x3FFF, 0xFFFF, 0xFFFF, 0xF000,
  59.     0x3FFF, 0xFFFF, 0xFFFF, 0xF000,
  60.     0x0000, 0x0000, 0x0000, 0x0000,
  61.     0x0000, 0x0000, 0x0000, 0x0000,
  62.  
  63.     /* bitplane #1 */
  64.     0xFFFF, 0xFFFF, 0xFFFF, 0xFE00,
  65.     0xFFFF, 0xFFFF, 0xFFFF, 0xFE00,
  66.     0xFFFF, 0xFFFF, 0xFFFF, 0xFE00,
  67.     0xC000, 0x0000, 0x0000, 0x0E00,
  68.     0xCFFF, 0xFFFF, 0xFFFF, 0xEE00,
  69.     0xC87F, 0x1FFF, 0x0FFF, 0xEE00,
  70.     0xCC3F, 0x3FFE, 0xE7FF, 0xEE00,
  71.     0xCCBE, 0x3FFE, 0x73FF, 0xEE00,
  72.     0xCCBE, 0x3EFF, 0xF7EF, 0xEE00,
  73.     0xCC9C, 0x3C47, 0xE793, 0xEE00,
  74.     0xCC9D, 0x3D9F, 0xCFBB, 0xEE00,
  75.     0xCCC9, 0x39BF, 0xE7F3, 0xEE00,
  76.     0xCCCB, 0x39BF, 0xF3CB, 0xEE00,
  77.     0xCCCB, 0x3D3E, 0x73BB, 0xEE00,
  78.     0xCCE3, 0x3C7E, 0xE73A, 0xEE00,
  79.     0xC866, 0x1E1F, 0x0F80, 0xEE00,
  80.     0xCFFF, 0xFCCF, 0xFFFF, 0xEE00,
  81.     0xCFFF, 0xFDEF, 0xFFFF, 0xEE00,
  82.     0xCC00, 0x0000, 0x0000, 0xEE00,
  83.     0xCFFF, 0xFC1F, 0xFFFF, 0xEE00,
  84.     0xCF80, 0x0000, 0x0000, 0x0E00,
  85.     0xCFFF, 0xFFFF, 0xFFFF, 0xEE00,
  86.     0xCE00, 0x0000, 0x0000, 0x2E00,
  87.     0xCFFF, 0xFFFF, 0xFFFF, 0xEE00,
  88.     0xC000, 0x0000, 0x0000, 0x0E00,
  89.     0xFFFF, 0xFFFF, 0xFFFF, 0xFE00,
  90.     0xFFFF, 0xFFFF, 0xFFFF, 0xFE00,
  91. };
  92.  
  93. static struct Image iconimg = {    /* Icon Image  */
  94.     0, 0,
  95. /*    54, 20, 2,*/
  96.     54, 27, 2,
  97.     NULL,            /* filled in later */
  98.     0x3, 0,
  99.     NULL
  100. };
  101.  
  102. /*
  103.  * Iconify MG's window using tthide(), iconify(), and ttshow().
  104.  */
  105.  
  106. int 
  107. tticon(f, n)
  108. {
  109.     static UWORD    iconX = 0, iconY = 0;
  110.     UWORD          *chipbitmap;
  111.     struct Image   *chipimg;
  112.     extern short    toggling;
  113.  
  114.     /* copy the bitmap into chip memory */
  115.     if (NULL == (chipbitmap = (UWORD *)
  116.          AllocMem((ULONG) sizeof(mg3a), MEMF_CHIP | MEMF_PUBLIC))) {
  117.         ewprintf("Can't allocate image bitmap");
  118.         return FALSE;
  119.     }
  120.     bcopy((char *) mg3a, (char *) chipbitmap, (int) sizeof(mg3a));
  121.  
  122.     /* copy the image structure too */
  123.     if (NULL == (chipimg = (struct Image *)
  124.           AllocMem((ULONG) sizeof(iconimg), MEMF_CHIP | MEMF_PUBLIC))) {
  125.         FreeMem(chipbitmap, (ULONG) sizeof(iconimg));
  126.         ewprintf("Can't allocate image structure");
  127.         return FALSE;
  128.     }
  129.     bcopy((char *) &iconimg, (char *) chipimg, (int) sizeof(iconimg));
  130.     chipimg->ImageData = chipbitmap;
  131.  
  132.     /* hide the window, display the icon, then redisplay the window */
  133.     tthide(FALSE);        /* not resizing */
  134.  
  135.     iconify(&iconX, &iconY, chipimg->Width, chipimg->Height, NULL,
  136.         (APTR) chipimg, (int) ICON_IMAGE);    /* iconify     */
  137.     FreeMem(chipimg, (ULONG) sizeof(iconimg));
  138.     FreeMem(chipbitmap, (ULONG) sizeof(mg3a));
  139.  
  140.     ttshow(FALSE);        /* no resize */
  141.     return TRUE;
  142. }
  143. #else
  144. #include "nullfile.h"
  145. #endif                /* DO_ICONIFY */
  146.  
  147.